home *** CD-ROM | disk | FTP | other *** search
- unit Unit1;
- {.$DEFINE COOKIES}
- interface
- uses
- Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables, DBWeb;
-
- type
- TWebModule1 = class(TWebModule)
- QueryTableProducer1: TQueryTableProducer;
- Query1: TQuery;
- PageProducer1: TPageProducer;
- DataSetTableProducer1: TDataSetTableProducer;
- procedure WebModule1WebActionItem1Action(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- procedure PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
- const TagString: String; TagParams: TStrings;
- var ReplaceText: String);
- procedure WebModule1WebActionItem2Action(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- WebModule1: TWebModule1;
-
- implementation
- {$R *.DFM}
-
- procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- {$IFDEF COOKIES}
- var
- Cookies: TStringList;
- {$ENDIF}
- begin
- { QueryTableProducer1.MaxRows := 20; { default }
- Response.Content :=
- QueryTableProducer1.Content +
- PageProducer1.Content;
- {$IFDEF COOKIES}
- Cookies := TStringList.Create;
- Cookies.Add('KEY='+Query1.Fields[0].AsString);
- Response.SetCookieField(Cookies,'','',Now+1,False);
- Cookies.Free;
- {$ENDIF}
- end;
-
- procedure TWebModule1.PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
- const TagString: String; TagParams: TStrings; var ReplaceText: String);
- begin
- {$IFNDEF COOKIES}
- if TagString = 'KEY' then
- ReplaceText := Query1.Fields[0].AsString;
- {$ENDIF}
- if TagString = 'LENGTH' then
- ReplaceText := Query1.Params.ParamValues['LENGTH'];
- end;
-
- procedure TWebModule1.WebModule1WebActionItem2Action(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- var
- Key: Integer;
- {$IFDEF COOKIES}
- var
- Cookies: TStringList;
- {$ENDIF}
- begin
- Query1.Close;
- Query1.Params[0].AsInteger :=
- StrToInt(Request.ContentFields.Values['LENGTH']);
- try
- {$IFDEF COOKIES}
- Key := StrToInt(Request.CookieFields.Values['KEY']);
- {$ELSE}
- Key := StrToInt(Request.ContentFields.Values['KEY']);
- {$ENDIF}
- except
- Key := 0
- end { 0 for no key };
- Query1.Open;
- while Query1.Fields[0].AsInteger < Key do Query1.Next;
- { now create output page(s) }
- Response.Content :=
- DataSetTableProducer1.Content +
- PageProducer1.Content;
- {$IFDEF COOKIES}
- Cookies := TStringList.Create;
- Cookies.Add('KEY='+Query1.Fields[0].AsString);
- Response.SetCookieField(Cookies,'','',Now+1,False);
- Cookies.Free;
- {$ENDIF}
- end;
-
- end.
-